package com.zxy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.zxy.pojo.dto.ActivityListQuery;
import com.zxy.pojo.entity.Activity;
import com.zxy.pojo.entity.ActivityDict;
import com.zxy.pojo.vo.ActivityStatsVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 活动Mapper（分页查询+统计查询）
 */
@Mapper
public interface ActivityMapper extends BaseMapper<Activity> {
    /**
     * 分页查询活动列表（带多条件筛选：code/channel/时间范围）
     */
    IPage<Activity> selectActivityPage(
            Page<Activity> page, 
            @Param("query") ActivityListQuery query
    );

    /**
     * 查询活动状态统计（total/pass/reject/toAudit/finish）
     */
    ActivityStatsVO selectActivityStats();


    /**
     * 通用查询：根据字典类型（dictType）查询字典列表
     * @param dictType 字典类型（如clues_item/channel_type/activity_status）
     * @return 对应类型的字典列表
     */
    List<ActivityDict> selectDictListByType(@Param("dictType") String dictType);

    Activity selectActivityById(Long activityId);
}